package cn.shengchao.examstar.knowledge.application.dto;

import cn.shengchao.examstar.knowledge.domain.enums.MasteryLevel;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

/**
 * 知识树节点DTO
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class KnowledgeTreeNodeDTO {
    /**
     * 知识点ID
     */
    private Long id;
    
    /**
     * 知识点名称
     */
    private String name;
    
    /**
     * 知识点描述
     */
    private String description;
    
    /**
     * 父节点ID
     */
    private Long parentId;
    
    /**
     * 排序
     */
    private Long sort;
    
    /**
     * 路径
     */
    private String path;
    
    /**
     * 掌握程度
     * S-精通, A-掌握, B-理解, C-初步了解, N-未检测
     */
    private String degreeOfMastery;
    
    /**
     * 正确率
     */
    private String accuracyRate;
    
    /**
     * 是否为叶子节点
     */
    private boolean isLeaf;
    
    /**
     * 子节点列表
     */
    private List<KnowledgeTreeNodeDTO> children;
    
    /**
     * 获取掌握程度枚举值
     */
    public MasteryLevel getMasteryLevel() {
        return MasteryLevel.fromCode(degreeOfMastery);
    }
    
    /**
     * 获取掌握程度描述
     */
    public String getMasteryDescription() {
        return MasteryLevel.getDescriptionByCode(degreeOfMastery);
    }
} 